from typing import Optional, List
from pydantic import BaseModel


class OSMData(BaseModel):
    includePOI: Optional[bool] = None


class CreateRegionOsmRequest(BaseModel):
    name: str
    parentRegion: Optional[str] = None
    latitude: float
    longitude: float
    osmData: Optional[OSMData] = None


class PointOfInterest(BaseModel):
    name: str
    type: str
    latitude: float
    longitude: float


class OSMDataResponse(BaseModel):
    mapLink: str
    boundingBox: List[float]
    pointsOfInterest: Optional[List[PointOfInterest]] = None


class CreateRegionOSMResponse(BaseModel):
    id: int
    name: str
    parentRegion: Optional[str] = None
    latitude: float
    longitude: float
    osmData: Optional[OSMDataResponse] = None
